package com.yfqy.app.modules.product.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class ProductSpuDTO {

    /**
     * spu_id
     */
    private Long id;

    /**
     * SPU编码
     */
    private String spuCode;

    /**
     * 商品名称
     */
    @NotBlank(message = "商品名称不能为空")
    private String spuName;

    /**
     * 商品标语
     */
    private String subTitle;

    /**
     * 分类ID
     */
    @NotNull(message = "分类不能为空")
    private Long categoryId;

    /**
     * 分类名称
     */
    private String categoryName;

    /**
     * 标签ID
     */
    private Long labelId;

    /**
     * 标签名称
     */
    private String labelName;

    private String mainImage;

    /**
     * 状态(0待审核，1上架，2下架)
     */
    private Byte status;

    /**
     * sku数量
     */
    private Integer skuCount;

    /**
     * 主图URL
     */
    @NotEmpty(message = "主图不能为空")
    @Size(max = 2, message = "主图最多不能超过2张")
    private List<String> mainImageList;

    private String detailImage;

    /**
     * 商品详情图
     */
    @NotEmpty(message = "详情图不能为空")
    @Size(min = 3, max = 9, message = "详情图数量必须在3到9之间")
    private List<String> detailImageList;

    /**
     * 商品描述
     */
    private String description;


    private String modifiedByName;

    private Long modifiedBy;

    private Date modifiedTime;


    /**
     * sku 列表
     */
    @NotEmpty(message = "sku不能为空")
    private List<ProductSkuDTO> productSkus;
}
